Physical unclonable functions (PUFs) have proven to be advantageous alternatives for many forms of secure identification, including the storing of keys, identifiers and the like in secure memories.
A physical unclonable function exploits manufacturing variations to derive a digital identifier. The digital identifier is thus tied to a physical medium. Because the physical unclonable function depends on random process variation, it is easy to create a PUF but it is very hard, if not downright impossible, to create a PUF which would give rise to a particular pre-determined identifier. The manufacturing variations lead to different physical characteristics of the memory element. For example, the physical characteristics may include: doping concentrations, oxide thickness, channel lengths, structural width (e.g. of a metal layer), parasitic (e.g. resistance, capacitance). When a digital circuit design is manufactured multiple times, these physical characteristics will vary slightly and together they will cause the behavior of an IC element, e.g., a memory element, to behave differently in some situations. For example, the start-up behavior is determined by manufacturing variations in the physical characteristics.
This property of PUFs makes them suitable for a range of applications. For example, PUFs may be used to combat counterfeiting. Although, it may be possible to fraudulently copy a particular device of other manufactured item, it would not be possible to duplicate a PUF which could be embedded therein with sufficient precision so that it would give rise to the same digital identifier as the original. As a further example, PUFs are used to create cryptographic keys. Using a PUF the need for secure memory to store a key is circumvented. A PUF furthermore provides natural protection against illegal attempts to obtain the cryptographic key through reverse engineering, since damage which could be inflicted to the PUF during the attempt would change the digital identifier. Preferably, the digital identifier is unique for the electronic physical unclonable function.
PUFs have been advantageously applied in electronic devices. Even tiny manufacturing variations which are unavoidable during manufacture of an IC lead to different properties of the IC. These different properties are normally suppressed, in an effort to obtain a batch of IC that operate in the same manner. However, to create a PUF the differences among individual ICs in a batch of IC are exploited.
For example, it has been observed that the startup behavior of some memory elements, demonstrate PUF like behavior. When such memory is powered-up, or booted, it tends to contain content, i.e., comprise a sequence of data values, which depends on the at least partially random physical characteristics of the components, e.g., gates or transistors, which make up the memory, e.g., their physical arrangement relative to each other. If the memory is powered-up multiple times, it would contain, up to a large percentage, the same content. Unfortunately, since the PUF behavior depends on small fluctuations, a certain error percentage is unavoidable. An error correction procedure, using so-called helper data, can be used to correct for these fluctuations, and make sure an identical digital identifier is derived, each time the PUF is used.
It is thus desirable that the content of a memory, when compared after multiple power-down and power-up sequences is identical to a large extend. At the same time it is desirable, that when content of the memory is compared to other memories of the same type it is for a large percentage different.
It is an insight of the inventors that both these goals would be furthered if the dependency of the start-up value of a memory on the at least partially random physical characteristics of the memory would be strengthened.